package com.ruoyi.yyq.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.alibaba.druid.sql.ast.SQLStructDataType;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.springframework.data.annotation.Id;

/**
 * 订单信息对象 car_order
 * 
 * @author ruoyi
 * @date 2025-05-12
 */

public class CarOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单号 */
    @Id
    private Long id;

    /** 核销码uuid产生，唯一 */

    private String verificationCode;

    /** 核销码图片 */

    @Excel(name = "核销码图片")
    private String verificationImg;

    /** 店铺id */

    @Excel(name = "店铺id")
    private Long mid;

    /** 用户id */

    @Excel(name = "用户id")
    private Long uid;

    /** 服务详情id */

    @Excel(name = "服务详情id")
    private Long serviceId;

    /** 服务类别id */

    private Long serviceTypeId;

    /** 下单时间 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderTime;

    /** 预约时间 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reservationTime;

    /** 订单车辆id */

    private Long carId;

    /** 平台优惠券id */

    private Long platformCouponId;

    /** 商家优惠券id */

    private Long shopCouponId;

    /** 实付金额 */

    @Excel(name = "实付金额")
    private BigDecimal price;

    /** 支付时间 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payTime;

    /** 支付方式 */

    @Excel(name = "支付方式")
    private Long payType;

    /** 使用时间 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "使用时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date useTime;

    /** 订单状态（0待支付，1待使用，2待评价，3已取消，4已退款，5已完成） */

    @Excel(name = "订单状态", readConverterExp = "0=待支付，1待使用，2待评价，3已取消，4已退款，5已完成")
    private Long status;

    /** 删除状态 */

    private Long deleted;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setVerificationCode(String verificationCode) 
    {
        this.verificationCode = verificationCode;
    }

    public String getVerificationCode() 
    {
        return verificationCode;
    }

    public void setVerificationImg(String verificationImg) 
    {
        this.verificationImg = verificationImg;
    }

    public String getVerificationImg() 
    {
        return verificationImg;
    }

    public void setMid(Long mid) 
    {
        this.mid = mid;
    }

    public Long getMid() 
    {
        return mid;
    }

    public void setUid(Long uid) 
    {
        this.uid = uid;
    }

    public Long getUid() 
    {
        return uid;
    }

    public void setServiceId(Long serviceId) 
    {
        this.serviceId = serviceId;
    }

    public Long getServiceId() 
    {
        return serviceId;
    }

    public void setServiceTypeId(Long serviceTypeId) 
    {
        this.serviceTypeId = serviceTypeId;
    }

    public Long getServiceTypeId() 
    {
        return serviceTypeId;
    }

    public void setOrderTime(Date orderTime) 
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime() 
    {
        return orderTime;
    }

    public void setReservationTime(Date reservationTime) 
    {
        this.reservationTime = reservationTime;
    }

    public Date getReservationTime() 
    {
        return reservationTime;
    }

    public void setCarId(Long carId) 
    {
        this.carId = carId;
    }

    public Long getCarId() 
    {
        return carId;
    }

    public void setPlatformCouponId(Long platformCouponId) 
    {
        this.platformCouponId = platformCouponId;
    }

    public Long getPlatformCouponId() 
    {
        return platformCouponId;
    }

    public void setShopCouponId(Long shopCouponId) 
    {
        this.shopCouponId = shopCouponId;
    }

    public Long getShopCouponId() 
    {
        return shopCouponId;
    }

    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }

    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }

    public void setPayType(Long payType) 
    {
        this.payType = payType;
    }

    public Long getPayType() 
    {
        return payType;
    }

    public void setUseTime(Date useTime) 
    {
        this.useTime = useTime;
    }

    public Date getUseTime() 
    {
        return useTime;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setDeleted(Long deleted) 
    {
        this.deleted = deleted;
    }

    public Long getDeleted() 
    {
        return deleted;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("verificationCode", getVerificationCode())
            .append("verificationImg", getVerificationImg())
            .append("mid", getMid())
            .append("uid", getUid())
            .append("serviceId", getServiceId())
            .append("serviceTypeId", getServiceTypeId())
            .append("orderTime", getOrderTime())
            .append("reservationTime", getReservationTime())
            .append("carId", getCarId())
            .append("platformCouponId", getPlatformCouponId())
            .append("shopCouponId", getShopCouponId())
            .append("price", getPrice())
            .append("payTime", getPayTime())
            .append("payType", getPayType())
            .append("useTime", getUseTime())
            .append("status", getStatus())
            .append("deleted", getDeleted())
            .toString();
    }
}
